package com.tjetc.dao;

import com.tjetc.pojo.dto.CheckInDTO;
import com.tjetc.pojo.entity.Order;
import com.tjetc.pojo.vo.OrderVO;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @Author: itda
 * @Date: 2024/5/11 14:29
 * @Description: OrderDao
 */
public interface OrderDao {
    /**
     * 新增订单
     * @param order
     */
    void insert(Order order) throws Exception;

    /**
     * 根据id删除订单
     * @param id
     */
    void delete(Long id) throws Exception;

    /**
     * 根据id修改订单
     * @param order
     */
    void update(Order order) throws Exception;

    /**
     * 查看订单信息
     * @return
     */
    List<Order> list() throws Exception;

    /**
     * 根据一段时间查询该时间内所有的订单
     * @param start
     * @param end
     * @return
     */
    List<OrderVO> getOrderByTime(LocalDateTime start, LocalDateTime end) throws Exception;

    /**
     * 根据用户id和酒店id查询订单信息
     * @param userId
     * @param hotelId
     * @return
     */
    List<Order> getByUHId(Long userId, Long hotelId) throws Exception;

    /**
     * 根据用户id查询历史订单
     * @param userId
     * @return
     */
    List<Order> getUserId(Long userId) throws Exception;
}
